home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / sossnt.zip / SOSSNT / SRC / DEBUG.H < prev    next >
C/C++ Source or Header  |  1993-03-01  |  3KB  |  131 lines

  1. /* debug.h - Debugging output macros */
  2. /*   Rich Braun @ Kronos, Inc.  Waltham, MA */
  3. /*   31 Jan 91 */
  4.  
  5. #ifndef _DEBUG_H
  6. #define _DEBUG_H
  7.  
  8. #ifndef STDIO_H
  9. #include <stdio.h>
  10. #endif
  11.  
  12. #ifndef _TIME_T_DEFINED
  13. #include <time.h>
  14. #endif
  15.  
  16. typedef struct _dbgflags {
  17.     unsigned rpctrace : 1,
  18.              mountd   : 1,
  19.          nfserr   : 1,
  20.          nfsdebug : 1,
  21.          nfsdisp  : 1,
  22.          nfslookup: 1,
  23.          nfsread  : 1,
  24.          nfswrite : 1,
  25.          nfstime  : 1,
  26.          inode    : 1;
  27.     };
  28.  
  29. extern struct _dbgflags __dbgflags__;
  30. extern FILE   *__dbgfp__;
  31. static char   __dbgbuf__ [200];
  32.  
  33. extern void dbg_init();
  34.  
  35. #ifndef DEBUG
  36. #define DBGPRT0(FLAG,STR) ((void)0)
  37. #define DBGPRT1(FLAG,STR,PARM1)    ((void)0)
  38. #define DBGPRT2(FLAG,STR,PARM1,PARM2) ((void)0)
  39. #define DBGPRT3(FLAG,STR,PARM1,PARM2,PARM3) ((void)0)
  40. #define DBGPRT4(FLAG,STR,PARM1,PARM2,PARM3,PARM4) ((void)0)
  41. #else
  42.  
  43. #define _TDBG 1
  44.  
  45. #if _TDBG
  46. /*
  47.  * Define DBGPRTx macros to print 0, 1, 2, 3, or 4 parameters following
  48.  * the prefix time-DBG-flagname-string.
  49.  */
  50.  
  51. static time_t __dbgnow__;
  52. #define __DTIME_STAMP(FLAG, STR) \
  53.        if (__dbgflags__.nfstime) {\
  54.         time (&__dbgnow__); \
  55.         (void) sprintf (__dbgbuf__, "%8.8s-DBG-%s-%s\n", \
  56.                 ctime (&__dbgnow__)+11, #FLAG, STR); \
  57.        } else \
  58.             sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR)
  59.  
  60. #define DBGPRT0(FLAG,STR) \
  61.     if (__dbgflags__.FLAG) { \
  62.        if (__dbgflags__.nfstime ) {\
  63.         time (&__dbgnow__); \
  64.         (void) fprintf (__dbgfp__, "%8.8s-DBG-%s-%s\n", \
  65.                 ctime (&__dbgnow__)+11, #FLAG, STR); \
  66.        } else \
  67.           (void) fprintf (__dbgfp__, "DBG-%s-%s\n", #FLAG, STR); \
  68.     }
  69.  
  70. #define DBGPRT1(FLAG,STR,PARM1) \
  71.     if (__dbgflags__.FLAG) { \
  72.        __DTIME_STAMP(FLAG,STR); \
  73.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1); \
  74.     }
  75.  
  76. #define DBGPRT2(FLAG,STR,PARM1,PARM2) \
  77.     if (__dbgflags__.FLAG) { \
  78.        __DTIME_STAMP(FLAG,STR); \
  79.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2); \
  80.     }
  81.     
  82. #define DBGPRT3(FLAG,STR,PARM1,PARM2,PARM3) \
  83.     if (__dbgflags__.FLAG) { \
  84.        __DTIME_STAMP(FLAG,STR); \
  85.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3); \
  86.     }
  87.  
  88. #define DBGPRT4(FLAG,STR,PARM1,PARM2,PARM3,PARM4) \
  89.     if (__dbgflags__.FLAG) { \
  90.        __DTIME_STAMP(FLAG,STR); \
  91.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3,PARM4); \
  92.     }
  93. #else
  94.  
  95. /*
  96.  * Define DBGPRTx macros to print 0, 1, 2, 3, or 4 parameters following
  97.  * the prefix DBG-flagname-string.
  98.  */
  99. #define DBGPRT0(FLAG,STR) \
  100.     if (__dbgflags__.FLAG) { \
  101.           (void) fprintf (__dbgfp__, "DBG-%s-%s\n", #FLAG, STR); \
  102.     }
  103.  
  104. #define DBGPRT1(FLAG,STR,PARM1) \
  105.     if (__dbgflags__.FLAG) { \
  106.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  107.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1); \
  108.     }
  109.  
  110. #define DBGPRT2(FLAG,STR,PARM1,PARM2) \
  111.     if (__dbgflags__.FLAG) { \
  112.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  113.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2); \
  114.     }
  115.     
  116. #define DBGPRT3(FLAG,STR,PARM1,PARM2,PARM3) \
  117.     if (__dbgflags__.FLAG) { \
  118.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  119.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3); \
  120.     }
  121.  
  122. #define DBGPRT4(FLAG,STR,PARM1,PARM2,PARM3,PARM4) \
  123.     if (__dbgflags__.FLAG) { \
  124.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  125.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3,PARM4); \
  126.     }
  127. #endif /* _TDBG */
  128.     
  129. #endif /* DEBUG */
  130. #endif /* _DEBUG_H */
  131.